表操作,DDL
表本身,与表结构的操作!
=====================
创建,create table
---------------
create table 表名 (
字段的定义
) [表选项];
其中表名,一定先要确定数据库!因此一个典型的表名是由两部分组成:
所在库.表名
test.itcast test库内itcast表
itcast.stu itcast库内的stu表
但是我们可以设置默认数据库,如果不指定则使用默认数据库(当前数据库)
use 数据库名。选择默认数据库!
在使用表名但是没有指明其所在数据库时,默认数据库才会起作用!
![](03183EA94283AC044CD0796115D9CAB8.png)
在itcast库内创建:
use itcast ; create table stu;
或者
create table itcast.stu
1. `use itcast;`
2. `create table stu (`
3. `id int,`
4. `name varchar(255)`
5. `) engine=innodb charset=utf8;`
其中字段的部分
字段才是最终的数据的载体(与变量的概念是类似的,都是基本保存数据的),mysql的是强类型,字段的类型是固定的,提前定义好的!
因此,在定义字段时,至少要字段名和字段类型!
两种最基本的mysql数据类型(int, varchar,varchar必须指定最大长度字符为单位)
表选项部分
典型的常用的表选项有:
字符集(校对集),表引擎。
![](4D6EA432D079E68F24C6FCBDB3CDA38E.png)
================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
查看,show,desc
------------
### 查看所有的表有哪些
show tables like ‘模式’
![](292A582F0466C06801713A5AC15B893F.png)
1. `show tables like 'stu';`
======================================================================================================================================================
### 查看具体的建表语句
show create table table\_name
![](4156D767451C24329FDC8E948DE7F433.png)
1. `show create table stu;`
在mysql的命令行客户端,如果数据过多,不容易展示!
可以使用 \\G 作为语句结束符!
![](984DE9FA77E9EBFA66F36F918D7E0142.png)
===============================================================================================================================================================================================================================================================================================
### 查询表结构
desc 表名
desc describe的简写
![](007594CA5554740F36A11ADA260B2C4C.png)
===================================================================================================
修改,alter table
--------------
### 修改表选项
alter table table\_name [新选项]
![](3BF77751D377C00CBF0944979F3B7766.png)
1. `alter table stu engine=myisam charset=gbk;`
=================================================================================================================================================================================
### 改表名
rename table原表名 to 新表名。
![](E910554CF7645C18B60A3CB7F44AF142.png)
注意,表名可以由库名.表名形式的!
因此,可以跨库修改表名: 只要在表名前增加库名即可
![](F8FEEA73DB6108D537693D52FEEDAACB.png)
1. `rename table stu to hero;`
2.
3. `rename table hero to test.stu;`
============================================================================================================================================================================================================================================================================================================================
### 修改表结构,表内字段
#### 增加字段
alter table table\_name add column 字段定义 [字段位置]
增加一个 age字段:
![](755A06C3429F3629F6F656ADBCC0A940.png)
![](DF354B069B1F4D7A372A90532E231BFC.png)
增加一个 height 在 name之后:
使用关键字 after some\_column\_name;
![](830D551C419DCBD47E2A2116596FCA08.png)
在最开始增加sn字段
使用关键字,first
![](F57961D5A4D02FCE7610F5702E2571A9.png)
1.
2. `alter table stu add column age int;`
3.
4. `alter table stu add column height int after name;`
5.
6. `alter table stu add column sn varchar(10) first;`
===================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
#### 删除字段
alter table table\_name drop column column\_name;
![](CC36790331A1A18B354BC73FA372826D.png)
1. `alter table stu drop column height;`
========================================================================================================================================================================================================
#### 修改已有字段(修改字段定义)
alter table table\_name modify column column\_name 新的定义!
可以修改位置
![](967BAC29CB5CF88587D3E47CFDE60471.png)
1. `alter table stu modify column sn int after name;`
=======================================================================================================================================================================================================================
#### 字段改名
alter table table\_name change column 原字段名新字段名新字段定义!
注意,不是纯粹的改名,而是需要在修改定义的同时改名!
![](3F4BB1DF25D94AC09350B3F1E2A95ED7.png)
1. alter table stu change column sn stu\_sn varchar(255) after age;
==========================================================================================================================================================================================================================================================
删除,drop table
-------------
![](CD335D3241062AFEF0EC371542D40895.png)
1. `drop table stu;`
drop table if exists
如果存在就删除
create table if not exists!
如果不存在就创建
================================================================================================================================================================================================================================================
查询表:
----
table.php
利用 mysql\_num\_rows($result)可以获得 结果集中的记录数:
![](A40360D90D6334352055499FDBEFB53C.png)
展示一个增加表名与记录数的小表单:
![](B9D11112D792B55E5ED2B384EAEA6FA7.png)
=============================================================================================================================================================================================================================
显示创建table的表单
------------
table\_create\_form.php
![](095B683BAFC69629745F29CFD48DAC52.png)
===============================================================================================
处理提交数据:
-------
应该为每组数据形成一个唯一的标识!采用 数组下标的形式!
![](D9A261EE12F23D8FFF4746868102773D.png)
![](B80C4C2F07E7E442B45B566908915FC5.png)
循环对数据做判断,然后依次拼凑sql语句:
================================================================================================================================================================================================================